import { UtcDateFormatter } from "./dateFormatter";

export class TransferDateFormatter {
  /**
   * 将对象中的时间字符串类型转换成指定格式的字符串yyyy-MM-dd HH:mm:ss
   * @param obj 要转换的对象
   */
  public static transferDate(obj: any): void {
    // 获取obj中key包含_at,_date的属性和值
    if (Array.isArray(obj)) {
      obj = obj.map((item) => this.transferDate(item));
      return;
    } else if (typeof obj === "object") {
      for (const key in obj) {
        if (key.endsWith("_at") || key.endsWith("_date")) {
          const value = obj[key];
          // 如果value是字符串类型，则转换成指定格式的字符串yyyy-MM-dd HH:mm:ss
          // 2025-09-18T20:51:41.000Z
          if (typeof value === "string") {
            obj[key] = UtcDateFormatter.convertUtcToLocal(value);
          } else if (typeof value === "object" && value instanceof Date) {
            obj[key] = UtcDateFormatter.convertUtcToLocal(value);
          }
        }
      }
    }
  }
}

// const obj = {
//   created_at: new Date("2025-09-11T22:00:56.000Z"),
//   updated_at: new Date("2025-09-11T22:00:56.000Z"),
//   id: 1,
//   username: "admin",
//   email: "admin@example.com",
//   avatar: null,
//   bio: "asdasdasdasdasdasd",
//   role: "admin",
//   status: "active",
// };
// TransferDateFormatter.transferDate(obj);
// console.log(obj);
// const obj2 = JSON.parse(JSON.stringify(obj));
// const arr = [obj, obj2];
// TransferDateFormatter.transferDate(arr);
// console.log(arr);
